/**
 * 餐饮品牌常量配置
 * 用于不同品牌的订单创建和数据适配
 */

export const BRAND_TYPES = {
  KFC: 1,         // K记（肯德基）
  MCDONALD: 2,    // 麦记（麦当劳）
  STARBUCKS: 4,   // 星爸爸（星巴克）
  NAIXUE: 8,      // 奈小雪（奈雪的茶）✅ 修正
  LUCKIN: 16,     // 瑞辛（瑞幸咖啡）✅ 修正
  HEYTEA: 32,     // 喜小茶（喜茶）✅ 修正
  CUDI: 64,       // 酷迪（库迪咖啡）✅ 修正
  CHAWANG: 128,   // 霸王茶姬
  PIZZAHUT: 16384,// 必胜客
};

export const BRAND_NAMES = {
  1: '肯德基',      // KFC
  2: '麦当劳',      // McDonald
  4: '星巴克',      // Starbucks
  8: '奈雪的茶',    // Naixue
  16: '瑞幸咖啡',   // Luckin
  32: '喜茶',       // Heytea
  64: '库迪咖啡',   // Cudi
  128: '霸王茶姬',  // Chawang
  16384: '必胜客',  // Pizza Hut
};

/**
 * 品牌订单创建规则说明
 */
export const BRAND_ORDER_RULES = {
  1: {  // KFC
    name: '肯德基',
    features: [
      '单品模式，无规格选择',
      'selected为空数组',
      '字段：priceHead（建议销售价）, price（市场价）',
      'linkId为空字符串',
    ],
  },
  2: {  // McDonald
    name: '麦当劳',
    features: [
      '套餐模式，支持规格选择',
      'selected中linkId是主商品id',
      '字段：selPrice, oPrice',
      '套餐选项：productId为选项商品id',
    ],
  },
  4: {  // Starbucks
    name: '星巴克',
    features: [
      '套餐模式，支持规格选择',
      'oPrice固定为0',
      '规格顺序要求：杯型第一，温度第二',
      '字段：selPrice, oPrice',
    ],
  },
  8: {  // Naixue
    name: '奈雪的茶',
    features: [
      '套餐模式，使用SKU模式',
      'selected中productId是SKU ID',
      '字段：selPrice, oPrice',
      '支持加料功能',
    ],
  },
  16: {  // Luckin
    name: '瑞幸咖啡',
    features: [
      '套餐模式，使用SKU模式',
      'selected中productId是SKU ID（不需要linkId）',
      '字段：selPrice, oPrice',
      'SKU包含温度和糖度组合',
    ],
  },
  32: {  // Heytea
    name: '喜茶',
    features: [
      '套餐模式，支持规格选择',
      'selected中linkId是规格组ID，productId是选项ID',
      '字段：selPrice, oPrice',
      '支持加价计算',
      '支持排斥逻辑（exclusives）',
    ],
  },
  64: {  // Cudi
    name: '库迪咖啡',
    features: [
      '套餐模式，使用SKU模式',
      '外层linkId是套餐选项skuID',
      'selected中productId与外层linkId相同',
      '字段：selPrice, oPrice',
    ],
  },
  128: {  // Chawang
    name: '霸王茶姬',
    features: [
      '套餐模式，两层选择：杯型 + 做法',
      'linkId是杯型SKU ID（goodsSkuList中的skuId）',
      'selected.products是做法选择（温度、甜度等）',
      '做法linkId是practiceId，productId是practiceValueId',
      '字段：sellPrice（杯型价格）, oPrice',
      '价格来源：选中杯型的goodsSkuList.salePrice',
    ],
  },
  16384: {  // Pizza Hut
    name: '必胜客',
    features: [
      '单品模式，无规格选择',
      'selected为空数组',
      '字段：priceHead（建议销售价）, price（市场价）',
      'linkId为空字符串',
    ],
  },
};

/**
 * 获取品牌名称
 * @param {Number} ot - 品牌类型编号
 * @returns {String} 品牌名称
 */
export function getBrandName(ot) {
  return BRAND_NAMES[ot] || '未知品牌';
}

/**
 * 获取品牌订单规则
 * @param {Number} ot - 品牌类型编号
 * @returns {Object} 品牌规则对象
 */
export function getBrandRules(ot) {
  return BRAND_ORDER_RULES[ot] || null;
}

/**
 * 判断是否为特定品牌
 * @param {Number} ot - 品牌类型编号
 * @param {Number} brandType - 要判断的品牌类型
 * @returns {Boolean}
 */
export function isBrand(ot, brandType) {
  return ot === brandType;
}

export default {
  BRAND_TYPES,
  BRAND_NAMES,
  BRAND_ORDER_RULES,
  getBrandName,
  getBrandRules,
  isBrand,
};

